# Makefile for g-cache project

# 定义变量
PROTO_DIR := model
PB_GO_OUT_DIR := geecachepb

# 默认目标
all: proto

# 编译protobuf文件
proto:
	protoc --go_out=paths=source_relative:. $(PROTO_DIR)/geecachepb.proto

init_grpc:
	go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
	go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

gen_grpc: init_grpc
	protoc --proto_path=idl \
		   --go_out=biz/model/ \
		   --go_opt=paths=source_relative \
		   --go-grpc_out=biz/model/ \
		   --go-grpc_opt=paths=source_relative \
		   idl/gcache.proto

# 清理生成的文件
clean:
	rm -f $(PB_GO_OUT_DIR)/*.pb.go

# 运行项目
run:
	go run main.go

# 构建项目
build:
	go build -o server main.go

.PHONY: all proto clean run build